// src/axiosInstance.js
import axios from 'axios';
import {getSessionStorage} from "./common.js"
import { useRouter } from 'vue-router';

const axiosInstance = axios.create({
  baseURL: 'http://localhost:8080/' // 你的 API 基础 URL
});

// 请求拦截器
/* axiosInstance.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token');
    // 判断请求 URL 是否包含 'login' 或 'register'，如果不包含则添加 token
    if (token && !config.url.includes('login') && !config.url.includes('register')) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
); */
axiosInstance.interceptors.request.use(
  config => {
    const token = getSessionStorage('token');
    // 判断请求 URL 是否包含 'login' 或 'register'，如果不包含则添加 token
    if (token && !config.url.includes('login') && !config.url.includes('register')) {
      config.headers['USER-INFO'] = `${token}`;
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// 响应拦截器
axiosInstance.interceptors.response.use(
  response => response,
  error => {
    if (error.response && error.response.status === 401) {
      // 处理 token 过期的情况，例如重定向到登录页面
      localStorage.removeItem('token');
      useRouter().push('/login');
    }
    return Promise.reject(error);
  }
);

export default axiosInstance;
